home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 February: Tool Chest / Apple Developer CD Series Tool Chest February 1996 (Apple Computer)(1996).iso / Sample Code / AOCE Sample Code / PowerTalk Access Modules / Sample SMSAM / SampleSMSAM Source / BuildingBlocks / ObjectListTests.cp < prev    next >
Encoding:
Text File  |  1995-07-28  |  4.0 KB  |  155 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        ObjectListTests.cp
  3.  
  4.     Copyright:    © 1991-1994 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Part of the AOCE Sample SMSAM Package.  Consult the license
  8.     which came with this software for your specific legal rights.
  9.  
  10. */
  11.  
  12.  
  13.  
  14. #ifndef __OBJECTLIST__
  15. #include "ObjectList.h"
  16. #endif
  17.  
  18. #ifndef    __DEBUGASSERT__
  19. #include "DebugAssert.h"
  20. #endif
  21.  
  22. #pragma segment ObjectListTests
  23.  
  24. DeclareList(void,TList);
  25. ImplementList(void,TList,true);
  26.  
  27. /***********************************|****************************************/
  28.  
  29. void VoidObjectListTests ()
  30. {
  31.     void* a = new char ();
  32.     void* b = new short ();
  33.     void* c = new long ();
  34.     void* d = new unsigned char ();
  35.     void* e = new unsigned short ();
  36.  
  37.     TList list;
  38.     ASSERT_RETURN ( list.Count () == 0 );
  39.  
  40.     list.Append ( a );
  41.     ASSERT_RETURN ( list.Count () == 1 );
  42.     ASSERT_RETURN ( list [ 1 ] == a );
  43.     ASSERT_RETURN ( list.Find ( a ) == 1 );
  44.  
  45.     list.Append ( b );
  46.     ASSERT_RETURN ( list.Count () == 2 );
  47.     ASSERT_RETURN ( list [ 1 ] == a );
  48.     ASSERT_RETURN ( list [ 2 ] == b );
  49.     ASSERT_RETURN ( list.Find ( a ) == 1 );
  50.     ASSERT_RETURN ( list.Find ( b ) == 2 );
  51.  
  52.     list.Append ( c );
  53.     ASSERT_RETURN ( list.Count () == 3 );
  54.     ASSERT_RETURN ( list [ 1 ] == a );
  55.     ASSERT_RETURN ( list [ 2 ] == b );
  56.     ASSERT_RETURN ( list [ 3 ] == c );
  57.     ASSERT_RETURN ( list.Find ( a ) == 1 );
  58.     ASSERT_RETURN ( list.Find ( b ) == 2 );
  59.     ASSERT_RETURN ( list.Find ( c ) == 3 );
  60.  
  61.     list.Append ( d );
  62.     ASSERT_RETURN ( list.Count () == 4 );
  63.     ASSERT_RETURN ( list [ 1 ] == a );
  64.     ASSERT_RETURN ( list [ 2 ] == b );
  65.     ASSERT_RETURN ( list [ 3 ] == c );
  66.     ASSERT_RETURN ( list [ 4 ] == d );
  67.     ASSERT_RETURN ( list.Find ( a ) == 1 );
  68.     ASSERT_RETURN ( list.Find ( b ) == 2 );
  69.     ASSERT_RETURN ( list.Find ( c ) == 3 );
  70.     ASSERT_RETURN ( list.Find ( d ) == 4 );
  71.  
  72.     list.Append ( e );
  73.     ASSERT_RETURN ( list.Count () == 5 );
  74.     ASSERT_RETURN ( list [ 1 ] == a );
  75.     ASSERT_RETURN ( list [ 2 ] == b );
  76.     ASSERT_RETURN ( list [ 3 ] == c );
  77.     ASSERT_RETURN ( list [ 4 ] == d );
  78.     ASSERT_RETURN ( list [ 5 ] == e );
  79.     ASSERT_RETURN ( list.Find ( a ) == 1 );
  80.     ASSERT_RETURN ( list.Find ( b ) == 2 );
  81.     ASSERT_RETURN ( list.Find ( c ) == 3 );
  82.     ASSERT_RETURN ( list.Find ( d ) == 4 );
  83.     ASSERT_RETURN ( list.Find ( e ) == 5 );
  84.  
  85.     ASSERT_RETURN ( a == list.Remove ( 1 ) );
  86.     ASSERT_RETURN ( list.Count () == 4 );
  87.     ASSERT_RETURN ( list [ 1 ] == b );
  88.     ASSERT_RETURN ( list [ 2 ] == c );
  89.     ASSERT_RETURN ( list [ 3 ] == d );
  90.     ASSERT_RETURN ( list [ 4 ] == e );
  91.     ASSERT_RETURN ( list.Find ( a ) == 0 );
  92.     ASSERT_RETURN ( list.Find ( b ) == 1 );
  93.     ASSERT_RETURN ( list.Find ( c ) == 2 );
  94.     ASSERT_RETURN ( list.Find ( d ) == 3 );
  95.     ASSERT_RETURN ( list.Find ( e ) == 4 );
  96.  
  97.     ASSERT_RETURN ( list.Remove ( c ) );
  98.     ASSERT_RETURN ( list.Count () == 3 );
  99.     ASSERT_RETURN ( list [ 1 ] == b );
  100.     ASSERT_RETURN ( list [ 2 ] == d );
  101.     ASSERT_RETURN ( list [ 3 ] == e );
  102.     ASSERT_RETURN ( list.Find ( a ) == 0 );
  103.     ASSERT_RETURN ( list.Find ( b ) == 1 );
  104.     ASSERT_RETURN ( list.Find ( c ) == 0 );
  105.     ASSERT_RETURN ( list.Find ( d ) == 2 );
  106.     ASSERT_RETURN ( list.Find ( e ) == 3 );
  107.  
  108.     ASSERT_RETURN ( e == list.Remove ( 3 ) );
  109.     ASSERT_RETURN ( list.Count () == 2 );
  110.     ASSERT_RETURN ( list [ 1 ] == b );
  111.     ASSERT_RETURN ( list [ 2 ] == d );
  112.     ASSERT_RETURN ( list.Find ( a ) == 0 );
  113.     ASSERT_RETURN ( list.Find ( b ) == 1 );
  114.     ASSERT_RETURN ( list.Find ( c ) == 0 );
  115.     ASSERT_RETURN ( list.Find ( d ) == 2 );
  116.     ASSERT_RETURN ( list.Find ( e ) == 0 );
  117.  
  118.     list.RemoveAll ();
  119.     ASSERT_RETURN ( list.Count () == 0 );
  120.  
  121.     delete a;
  122.     delete b;
  123.     delete c;
  124.     delete d;
  125.     delete e;
  126. }
  127.  
  128. /***********************************|****************************************/
  129.  
  130. class TFoo
  131. {
  132. public:                                TFoo () {};
  133.     virtual                            ~TFoo () {};
  134. };
  135.  
  136. DeclareList(TFoo,TFooList);
  137. ImplementList(TFoo,TFooList,true);
  138.  
  139. /***********************************|****************************************/
  140.  
  141. void DirectObjectListTests ()
  142. {
  143.     TFooList list;
  144. }
  145.  
  146. /***********************************|****************************************/
  147.  
  148. void ObjectListTests ()
  149. {
  150.     VoidObjectListTests ();
  151.     DirectObjectListTests ();
  152. }
  153.  
  154. /***********************************|****************************************/
  155.